export interface IThemeSettingProps {
  logo: string;
  navTheme: 'light' | 'dark';
  colorPrimary: string;
  layout: 'side' | 'top' | 'mix';
  siderMenuType: 'sub' | 'group';
  contentWidth: 'fluid' | 'fixed';
  splitMenus: boolean;
  fixedHeader: boolean;
  fixSiderbar: boolean;
  headerRender: boolean;
  footerRender: boolean;
  menuRender: boolean;
  menuHeaderRender: boolean;
  pwa: boolean;
  token: object;
}

export type Getters<T> = {
  [P in keyof T as `set${Capitalize<string & P>}`]: (
    state: any,
    action?: any,
  ) => any;
};

export type IThemeActionProps = Getters<IThemeSettingProps>;
